home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
EnigmA Amiga Run 1996 March
/
EnigmA AMIGA RUN 05 (1996)(G.R. Edizioni)(IT)[!][issue 1996-03][Skylink CD IV].iso
/
earcd
/
comm2
/
ftp-mail.lha
/
FTP-Mail
/
StripMail.rexx
< prev
Wrap
OS/2 REXX Batch file
|
1995-10-11
|
2KB
|
129 lines
/* StripMail - split UUCP-Mail-Folder in small pieces
**
** Call: rx StripMail <fromfile
**
** Makes out of a mailfolder for every mail an own file "tmp/mail.<x>"
** im drawer "tmp".
**
*/
/* eigene Fehlerbehandlung */
SIGNAL ON SYNTAX
SIGNAL ON ERROR
SIGNAL ON IOERR
/*SIGNAL ON NOVALUE*/
SIGNAL ON BREAK_C
SIGNAL ON BREAK_D
SIGNAL ON BREAK_E
SIGNAL ON BREAK_F
SIGNAL ON HALT
/* Hole Programmumgebung, hole daraus den Namen und Pfad von uu2zc */
PARSE SOURCE x
PARSE VAR x . . progname path .
version = '$VER: StripMail 1.00 (11-Oct-1995)'
author = 'Alexander Aulbach'
SAY '-- '||progname||', '||version||' by '||author||'.'
SAY
IF ~EXISTS("tmp") THEN ADDRESS COMMAND MakeDir tmp
/* Suche nach erster uucp-mail in folder. SCHLÜSSELWORT: "From " */
lin=""
DO WHILE ~EOF(STDIN) & LEFT(lin,5)~="From "
lin=READLN(STDIN)
END
IF EOF(STDIN) THEN SIGNAL LEAVE /* Keine Mail gefunden! */
iname="tmp/mail."
i=1
DO WHILE ~EOF(STDIN)
DO WHILE EXISTS(iname||i)
i=i+1
END
DO WHILE ~OPEN('out',iname||i,"W")
SAY progname' : Error while opening file "'iname||i'"'
SIGNAL LEAVE
END
SAY progname" : Write "iname||i
/* Wandle alle Mails um */
CALL WRITELN('out',lin)
lin=READLN(STDIN)
DO WHILE ~EOF(STDIN) & LEFT(lin,5)~="From "
CALL WRITELN('out',lin)
lin=READLN(STDIN)
END
CALL CLOSE ('out')
END
EXIT
/*----------------------------------------------------------------------------
Errorhandling:
----------------------------------------------------------------------------*/
Showsource:
PARSE ARG sig
SAY
SAY "..."
DO i=sig-2 TO sig+1
SAY i SOURCELINE(i)
IF i=sig THEN SAY "^^^^^^^^^^^^^^^^^^^^^^^^ Line, in which error occured!"
END
SAY "..."
RETURN
BREAK_C:
BREAK_D:
BREAK_E:
BREAK_F:
HALT:
SIGNAL OFF BREAK_C
SIGNAL OFF BREAK_D
SIGNAL OFF BREAK_E
SIGNAL OFF BREAK_F
SIGNAL OFF HALT
trace o
PARSE SOURCE x
PARSE VAR x . . progname .
SAY
SAY 'Program 'progname' stopped, Line: 'SIGL
EXIT(5)
LEAVE:
trace o
PARSE SOURCE x
PARSE VAR x . . progname .
SAY ' Programm found some strange data!'
SAY ' Error/Abort in Program 'progname', near line: 'SIGL
EXIT(10)
NOVALUE:
RC=39
SYNTAX:
ERROR:
IOERR:
trace o
PARSE SOURCE x
PARSE VAR x . . progname .
SAY 'ERROR: Program Error 'RC' in 'progname
SAY ' "'ERRORTEXT(RC)'"'
SAY ' Line: 'SIGL
CALL ShowSource SIGL
EXIT(20)